<?php

/**
 * グローバルナビ路線図用Utilクラス
 */
class Apm_Util_GlobalNavi_Rosenzu {

	private $searchType = null;
	private $prefCdList = null;
	private $railCdList = null;
	private $params = null;
	
	function __construct()
	{
		$this->params = array();
		
		$this->searchType = Apm_Session_GlobalNavi::getSearchType();
		$this->prefCdList = Apm_Session_GlobalNavi::getPrefCdList();
		$this->railCdList = Apm_Session_GlobalNavi::getRailCdList();
		$this->basicList = Apm_Session_GlobalNavi::getBasicList();
		
		// 検索区分を設定
		Apm_Session_GlobalNavi::setSearchType(Apm_Config_Search::SRHKBN_ROSENZU);
	}
	/**
	 * 画面遷移判定
	 */
	public function transitionJudge()
	{
		//基本項目をパラメータにセット
		$this->params = Apm_Util_GlobalNavi_Common::setBasicParams($this->basicList);
		//その他パラメータをセット
		$this->params['SrhKbn'] = Apm_Config_Search::SRHKBN_ROSENZU;
		
		// 住所検索 OR 地図検索 OR 沿線・駅検索 OR 店舗検索から遷移してきた場合
		if ($this->searchType == Apm_Config_Search::SRHKBN_JYUSYO || $this->searchType == Apm_Config_Search::SRHKBN_CHIZU ||
			$this->searchType == Apm_Config_Search::SRHKBN_ENSENEKI || $this->searchType == Apm_Config_Search::SRHKBN_TENPO)
		{
			// 都道府県判定 
//        	$this->prefJudge();
			if (!$this->prefJudge()) {
				return $this->params;
			}
        	// 路線図駅選択画面へリダイレクト
//			Apm_Util::redirect(Apm_Config_Search::URL_SELECT_ROSENZU, $this->params);
			return $this->params;
		}
		else
		{
			// 路線図検索から遷移した場合、セッションクリア
			Apm_Session_GlobalNavi::clear();
//			Apm_Util::redirect(Apm_Config_Search::URL_SELECT_ROSENZU, $this->params);
			$this->params = array();
			return $this->params;
		}
	}
	
	/**
	 * 都道府県判定
	 */
	private function prefJudge()
	{
		// 都道府県コードが選択されていない場合,または1つ以上選択した場合
		if (count($this->prefCdList) == 0 || count($this->prefCdList) > 1)
        {
        	// 都道府県選択画面へリダイレクト
//        	Apm_Util::redirect(Apm_Config_Search::URL_SELECT_ROSENZU, $this->params);
			$this->params = array();
			return false;
        }
        $this->params['PrefCd'] = $this->prefCdList;
		$this->params['prefcd_condition'] = Apm_Session_GlobalNavi::getPrefCdCondition();
		$this->params['first_check'] = Apm_Session_GlobalNavi::getFirstCheck();

		return true;
	}
	//沿線コード持っていた場合どうする？
	/**
	 * 沿線判定
	 */
	private function railJudge()
	{
        // 沿線コードが選択されていない場合
        if (count($this->railCdList) == 0)
        {
        	// 路線図駅選択画面へリダイレクト
//        	Apm_Util::redirect(Apm_Config_Search::URL_SELECT_ROSENZU, $this->params);
			$this->params = array();
			return false;
        }
        $this->params['RailCd'] = $this->railCdList;

		return true;
	}
}
?>
